https://leetcode.com/problems/orderly-queue/
9/6 更新挑戰一行程式碼
你有一組字串s 和一個數字k
每次只能從字串s 的前k 項裡面選出任一個字母排到s 後面,並且要把s 盡量排成最小字典序的字串(the lexicographically smallest string)
這題的example1 會讓題目看起來很難,所以我們先來看example2
首先,example2的output是個按照字母順序排序的字串,接著我們把example2的k = 3 改成 k = 2 會發現得到一樣的結果,改成k = 4、k = 5也一樣
因為當k >= 2 時,我們就能把最小順序的字母留在最前面,最後都一定能排出按照順序完美排好的字串,只是差在快慢而已
至於k=1 的狀況,我們只要列出所有的組合並找出最小的順序就好
class Solution:
def orderlyQueue(self, s: str, k: int) -> str:
if k > 1:
return ''.join(sorted(s))
temp = []
for i in range(len(s)):
temp.append( s[i:] + s[:i])
return min(temp)
class Solution:
def orderlyQueue(self, s: str, k: int) -> str:
return ''.join(sorted(s)) if k > 1 else min([s[i:] + s[:i] for i in range(len(s))])
這題雖然是hard題目,但是相比前兩天同樣是hard的題目簡單很多
可能是因為太簡單的關係,這題倒讚比高了不少
總之順利完成第5天了!!!
話說我可能近視加深需要換眼鏡了,今天第一次看到這個gif竟然看成他在打手槍...